home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK2.toast / Development Kits (Disc 2) / QuickDraw GX / Programming Stuff / Sample Code / Printing Samples / Extensions… / Spooling ƒ / Spooling.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-10  |  3.5 KB  |  106 lines  |  [TEXT/MPS ]

  1. /*________________________________________________________
  2.  
  3.     File: Spooling.h
  4.  
  5.     C header file for a printing extension which redirects
  6.     spool files.
  7.  
  8.     Dave Hersey
  9.     Apple Developer Technical Support
  10.  
  11.      1/29/93 - dmh - begat.
  12.      4/27/93 - dmh - Updated for b1.
  13.      9/06/93 - dmh - Updated for b2.
  14.              - Switched to Exception.h assertion stuff
  15.                for error checking.
  16.     12/18/93 - dmh - Updated for b3.
  17.      3/22/94 - dmh - Updated for b4.
  18.  
  19.     (Note: labels are in the Mark menu.)
  20.     
  21. __________________________________________________________*/
  22.  
  23. #include <Types.h>
  24. #include <Errors.h>
  25. #include <Resources.h>
  26. #include <ToolUtils.h>
  27. #include <Aliases.h>
  28. #include <Folders.h>
  29. #include <StandardFile.h>
  30. #include <GXExceptions.h>
  31. #include <graphics routines.h>
  32. #include <graphics types.h>
  33. #include <Collections.h>
  34. #include <PrintingManager.h>
  35. #include <PrintingMessages.h>
  36.  
  37. #define kRedirectDisabled        0         /* spool redirection is turned off.        */
  38.  
  39. #define kCreator                '≠-34'
  40. #define kSpoolCollectionType    kCreator /* our collection type.                    */
  41.  
  42. #define kAliasID                12345     /* the resource ID of our folder alias.    */
  43. #define kConfigType                'INFO'     /* our collection's resource type.            */
  44. #define kConfigID                10101
  45.  
  46. #define kPrefsFileCreator        'RSED'     /* Our preferences file will be a            */
  47. #define kPrefsFileType            'rsrc'     /* ResEdit-owned resource file.            */
  48.  
  49. #define r_fileDlogID            7000     /* resource ID of our custom file dialog.    */
  50. #define d_selectItem            10          /* DITL ID of select button.                */
  51. #define d_selectDirectory        4         /* "Spool to…" button.                        */
  52.  
  53. #define r_spoolPanel            6000     /* our panel ID.                            */
  54. #define d_folderName            6         /* text field for current folder name.        */
  55. #define d_volumeName            8         /* text field for current volume name.        */
  56.  
  57. #define    r_stringRsrc            200         /* resource ID of our STR# list.            */
  58. #define    r_prefsStrIdx            1         /* STR# item w/the name of the Prefs file.    */
  59.  
  60.  
  61. // This is what our collection looks like.
  62.  
  63. typedef struct SpoolCollection
  64. {                                    // offset:
  65.     unsigned char    extTurnedOn;    //   0        on/off setting from panel.
  66.     char            fillByte;        //           fill byte.
  67.     Str63            folderName;        //     2        name of the selected folder.
  68.     Str63            volumeName;        //            name of the selected volume.
  69. } SpoolCollection;
  70.  
  71.  
  72. // Function prototypes:
  73.  
  74. // external defines for creating our A5 world.
  75.  
  76. extern long A5Size (void);
  77. extern void A5Init (void *);
  78.  
  79. OSErr    InitGlobalData(void);
  80. OSErr    SPInitialize(void);
  81. OSErr    SPShutDown(void);
  82. OSErr    SPJobPrintDialog(gxDialogResult *dlogResult);
  83. OSErr    SetUpPrintPanel(void);
  84. OSErr    SPHandlePanelEvent(gxPanelInfoRecord *panelInfo);
  85. void    OpenSpoolPanel(DialogPtr pDlg, short itemCount);
  86. OSErr    SavePanelChanges(void);
  87. OSErr    SPCreateSpoolFile(FSSpec *anFSSpec, long createOptions, gxSpoolFile *spFile);
  88. Boolean    GetFolder(FSSpec *fSpec);
  89. pascal    short MyDlgHook(short item, DialogPtr theDlg, Ptr userData);
  90. pascal    Boolean FilterAllFiles(CInfoPBPtr pb, Ptr myDataPtr);
  91. OSErr    GetDefaultSettings(SpoolCollection *spoolConfig);
  92. long    GetActualDirID(FSSpec *fSpec);
  93. OSErr    OpenPrefsFile(short *resRefNum, char permission);
  94. OSErr    ReplaceResource(Handle newData, OSType resourceType, short resourceID);
  95. OSErr    GetSpoolCollection(SpoolCollection *spoolCollect);
  96. Boolean    AliasToPathName(AliasHandle anAlias, char *folderName, char *volName);
  97. void    GetPrefsName(char *prefsName);
  98.  
  99.  
  100. /* globals */
  101.  
  102. extern Str255        gPrefsFileName;            // The name of our preferences file.
  103. extern AliasHandle    gCurFolderAlias;        // The current folder alias used by the panel.
  104. extern Boolean        gSettingsChanged;        // True if we have panel changes to save.
  105. extern Boolean        gLastEnableSetting;        // The "enabled" setting when we opened the panel.
  106.